Install YOLOv8¶

In [27]:
!pip uninstall ultralytics
^C

Check Ultralytics YOLOv8, Python, PyTorch, and other resources Version

In [1]:
import ultralytics
ultralytics.checks()
Ultralytics YOLOv8.0.74  Python-3.7.0 torch-1.8.0 CUDA:0 (Quadro M2200, 4096MiB)
Setup complete  (8 CPUs, 31.9 GB RAM, 176.5/405.0 GB disk)

1. Import Dependencies¶

In [2]:
import torch
from matplotlib import pyplot as plt
import numpy as np
import cv2
from ultralytics import YOLO
from IPython.display import display, Image

2. Load Model¶

In [3]:
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)
Downloading https:\github.com\ultralytics\assets\releases\download\v0.0.0\yolov8n.pt to yolov8n.pt...
100%|█████████████████████████████████████████████████████████████████████████████| 6.23M/6.23M [00:04<00:00, 1.63MB/s]

3. Make Detections with Images¶

In [4]:
img ='b3c939e3-61fb6427.jpg'
In [11]:
results = model.predict(source=img, conf=0.4 , show = True )
print(len(results))
for result in results:
    boxes = result.boxes  # Boxes object for bbox outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    probs = result.probs  # Class probabilities for classification outputs
cv2.waitKey(50000)
cv2.destroyAllWindows()
image 1/1 I:\Proposel\CV\CUSTOM_VEHICLE_DETECTION\using_yolo\b3c939e3-61fb6427.jpg: 384x640 5 cars, 1 truck, 105.4ms
Speed: 2.0ms preprocess, 105.4ms inference, 15.6ms postprocess per image at shape (1, 3, 640, 640)
1

Get The BBOXES from results

In [12]:
bboxes =  results[0].boxes.xyxy.tolist() # you can get any formate  result.boxes.... 'xyxy,xywh,...'
print(bboxes)
[[805.1990966796875, 328.384033203125, 1032.1099853515625, 462.6634521484375], [467.4495849609375, 343.381591796875, 526.3569946289062, 381.6923828125], [1127.35302734375, 386.7113952636719, 1279.4169921875, 625.218994140625], [290.49456787109375, 317.7579650878906, 456.86248779296875, 430.4935607910156], [546.7669067382812, 323.8533935546875, 653.5784301757812, 420.2071533203125], [290.415283203125, 317.9871826171875, 456.85498046875, 430.7884521484375]]

With Matplotlib

In [13]:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
%matplotlib inline 

image = plt.imread(img) 
# Create a figure and axis
fig, ax = plt.subplots()
ax.imshow(image)

# Loop over the bboxes and draw them on the image
for bbox in bboxes:
    x1, y1, x2, y2 = bbox
    rect = patches.Rectangle((x1, y1), x2 - x1, y2 - y1, linewidth=1, edgecolor='r', facecolor='none')
    ax.add_patch(rect)

# Show the image with bboxes
plt.show()
No description has been provided for this image

With Open CV

In [8]:
# Load the image
image = cv2.imread(img)  
# Convert the image tensor to a numpy array
image = np.array(image)

# Loop over the bboxes and draw them on the image
for bbox in bboxes:
    x1, y1, x2, y2 = bbox
    x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)  # convert bbox coordinates to integers
    image = cv2.rectangle(image, (x1, y1), (x2, y2), (0, 0,255), 1)  # draw bbox on the image

# Display the image with bboxes
cv2.imshow('Image with Bboxes', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

4. Real Time Detections¶

In [9]:
cap = cv2.VideoCapture('video11.mp4')
screen_width = 640
screen_height = 480
while cap.isOpened():
    ret, frame = cap.read()
    frame = cv2.resize(frame, (screen_width, screen_height))
    
    # Make detections 
    results = model.predict(source=frame, conf=0.25,show = True) # You can disable show = False
    bboxes =  results[0].boxes.xyxy.tolist() # you can get any formate  result.boxes.... 'xyxy,xywh,...'
    # Loop over the bboxes and draw them on the image
    for bbox in bboxes:
        x1, y1, x2, y2 = bbox
        x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)  # convert bbox coordinates to integers
        frame = cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0,255), 1)  # draw bbox on the image
        cv2.imshow('YOLO', frame)
    
    if cv2.waitKey(10) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
0: 480x640 6 cars, 146.5ms
Speed: 9.5ms preprocess, 146.5ms inference, 4.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 7 cars, 29.4ms
Speed: 1.0ms preprocess, 29.4ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 28.9ms
Speed: 12.9ms preprocess, 28.9ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 29.7ms
Speed: 0.0ms preprocess, 29.7ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 38.4ms
Speed: 0.0ms preprocess, 38.4ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 1 bench, 38.3ms
Speed: 0.0ms preprocess, 38.3ms inference, 3.1ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 38.7ms
Speed: 0.0ms preprocess, 38.7ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 7 cars, 33.9ms
Speed: 0.0ms preprocess, 33.9ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 35.9ms
Speed: 0.0ms preprocess, 35.9ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 30.3ms
Speed: 0.0ms preprocess, 30.3ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 31.1ms
Speed: 0.0ms preprocess, 31.1ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 33.7ms
Speed: 0.0ms preprocess, 33.7ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 1 person, 5 cars, 30.4ms
Speed: 0.0ms preprocess, 30.4ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 7 cars, 30.1ms
Speed: 0.0ms preprocess, 30.1ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 30.0ms
Speed: 0.0ms preprocess, 30.0ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 1 bird, 30.7ms
Speed: 0.0ms preprocess, 30.7ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 29.4ms
Speed: 0.0ms preprocess, 29.4ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 29.4ms
Speed: 0.0ms preprocess, 29.4ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 34.0ms
Speed: 0.0ms preprocess, 34.0ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 34.4ms
Speed: 0.0ms preprocess, 34.4ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 35.0ms
Speed: 0.0ms preprocess, 35.0ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 33.9ms
Speed: 0.0ms preprocess, 33.9ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 31.6ms
Speed: 0.0ms preprocess, 31.6ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 31.3ms
Speed: 0.0ms preprocess, 31.3ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 36.0ms
Speed: 0.0ms preprocess, 36.0ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 33.0ms
Speed: 0.0ms preprocess, 33.0ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 30.6ms
Speed: 0.0ms preprocess, 30.6ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 30.5ms
Speed: 0.0ms preprocess, 30.5ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 140.0ms
Speed: 0.0ms preprocess, 140.0ms inference, 0.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 1 person, 6 cars, 83.0ms
Speed: 0.0ms preprocess, 83.0ms inference, 0.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 1 person, 5 cars, 38.4ms
Speed: 0.0ms preprocess, 38.4ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 34.2ms
Speed: 0.0ms preprocess, 34.2ms inference, 2.9ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 34.0ms
Speed: 0.0ms preprocess, 34.0ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 33.7ms
Speed: 0.0ms preprocess, 33.7ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 32.6ms
Speed: 0.0ms preprocess, 32.6ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 22.6ms
Speed: 1.0ms preprocess, 22.6ms inference, 0.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 36.3ms
Speed: 0.0ms preprocess, 36.3ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 30.9ms
Speed: 0.0ms preprocess, 30.9ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 31.8ms
Speed: 0.0ms preprocess, 31.8ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 1 person, 3 cars, 31.0ms
Speed: 0.0ms preprocess, 31.0ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 30.7ms
Speed: 0.0ms preprocess, 30.7ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 32.9ms
Speed: 0.0ms preprocess, 32.9ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 31.4ms
Speed: 0.0ms preprocess, 31.4ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 29.6ms
Speed: 0.0ms preprocess, 29.6ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 1 person, 5 cars, 1 truck, 32.1ms
Speed: 0.0ms preprocess, 32.1ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 2 persons, 4 cars, 33.0ms
Speed: 0.0ms preprocess, 33.0ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 1 person, 5 cars, 30.6ms
Speed: 0.0ms preprocess, 30.6ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 2 persons, 5 cars, 30.7ms
Speed: 0.0ms preprocess, 30.7ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 2 persons, 6 cars, 31.0ms
Speed: 0.0ms preprocess, 31.0ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 1 person, 4 cars, 32.9ms
Speed: 0.0ms preprocess, 32.9ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 2 clocks, 29.8ms
Speed: 0.0ms preprocess, 29.8ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 31.8ms
Speed: 0.0ms preprocess, 31.8ms inference, 2.2ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 28.1ms
Speed: 0.0ms preprocess, 28.1ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 29.9ms
Speed: 0.0ms preprocess, 29.9ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 28.0ms
Speed: 0.0ms preprocess, 28.0ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 32.6ms
Speed: 0.0ms preprocess, 32.6ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 32.1ms
Speed: 0.0ms preprocess, 32.1ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 23.8ms
Speed: 0.0ms preprocess, 23.8ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 24.6ms
Speed: 11.0ms preprocess, 24.6ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 33.0ms
Speed: 0.0ms preprocess, 33.0ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 31.4ms
Speed: 0.0ms preprocess, 31.4ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 28.0ms
Speed: 0.0ms preprocess, 28.0ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 32.4ms
Speed: 0.0ms preprocess, 32.4ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 31.9ms
Speed: 0.0ms preprocess, 31.9ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 29.4ms
Speed: 0.0ms preprocess, 29.4ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)
0: 480x640 3 cars, 31.3ms
Speed: 0.0ms preprocess, 31.3ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 31.0ms
Speed: 0.0ms preprocess, 31.0ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 14.9ms
Speed: 0.0ms preprocess, 14.9ms inference, 15.7ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 23.5ms
Speed: 0.0ms preprocess, 23.5ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 22.6ms
Speed: 1.0ms preprocess, 22.6ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 22.5ms
Speed: 1.0ms preprocess, 22.5ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 17.3ms
Speed: 0.0ms preprocess, 17.3ms inference, 14.6ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 22.7ms
Speed: 10.7ms preprocess, 22.7ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 30.9ms
Speed: 0.0ms preprocess, 30.9ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 30.2ms
Speed: 0.0ms preprocess, 30.2ms inference, 3.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 16.6ms
Speed: 0.0ms preprocess, 16.6ms inference, 14.2ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 32.9ms
Speed: 0.0ms preprocess, 32.9ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 17.2ms
Speed: 0.0ms preprocess, 17.2ms inference, 0.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 1 airplane, 17.0ms
Speed: 0.0ms preprocess, 17.0ms inference, 13.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 4 cars, 16.9ms
Speed: 0.0ms preprocess, 16.9ms inference, 14.0ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 6 cars, 16.8ms
Speed: 0.0ms preprocess, 16.8ms inference, 15.4ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 3 cars, 17.0ms
Speed: 0.0ms preprocess, 17.0ms inference, 14.8ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 5 cars, 11.5ms
Speed: 0.0ms preprocess, 11.5ms inference, 15.3ms postprocess per image at shape (1, 3, 640, 640)

0: 480x640 7 cars, 17.6ms
Speed: 0.0ms preprocess, 17.6ms inference, 13.5ms postprocess per image at shape (1, 3, 640, 640)

5. Train from scratch¶

Custom Training¶

Option 1: (recommended)

In [12]:
model = YOLO('yolov8n.pt') # pass any model type
model.train(epochs=5,data= 'datasets\\dataset.yaml',imgsz=320,batch=16)  
Ultralytics YOLOv8.0.74  Python-3.7.0 torch-1.8.0 CUDA:0 (Quadro M2200, 4096MiB)
yolo\engine\trainer: task=detect, mode=train, model=yolov8n.pt, data=datasets\dataset.yaml, epochs=5, patience=50, batch=16, imgsz=320, save=True, save_period=-1, cache=False, device=None, workers=8, project=None, name=None, exist_ok=False, pretrained=False, optimizer=SGD, verbose=True, seed=0, deterministic=True, single_cls=False, image_weights=False, rect=False, cos_lr=False, close_mosaic=0, resume=False, amp=True, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, show=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, vid_stride=1, line_thickness=3, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, boxes=True, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=None, workspace=4, nms=False, lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, label_smoothing=0.0, nbs=64, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.0, copy_paste=0.0, cfg=None, v5loader=False, tracker=botsort.yaml, save_dir=runs\detect\train9
Overriding model.yaml nc=80 with nc=3

                   from  n    params  module                                       arguments                     
  0                  -1  1       464  ultralytics.nn.modules.Conv                  [3, 16, 3, 2]                 
  1                  -1  1      4672  ultralytics.nn.modules.Conv                  [16, 32, 3, 2]                
  2                  -1  1      7360  ultralytics.nn.modules.C2f                   [32, 32, 1, True]             
  3                  -1  1     18560  ultralytics.nn.modules.Conv                  [32, 64, 3, 2]                
  4                  -1  2     49664  ultralytics.nn.modules.C2f                   [64, 64, 2, True]             
  5                  -1  1     73984  ultralytics.nn.modules.Conv                  [64, 128, 3, 2]               
  6                  -1  2    197632  ultralytics.nn.modules.C2f                   [128, 128, 2, True]           
  7                  -1  1    295424  ultralytics.nn.modules.Conv                  [128, 256, 3, 2]              
  8                  -1  1    460288  ultralytics.nn.modules.C2f                   [256, 256, 1, True]           
  9                  -1  1    164608  ultralytics.nn.modules.SPPF                  [256, 256, 5]                 
 10                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 11             [-1, 6]  1         0  ultralytics.nn.modules.Concat                [1]                           
 12                  -1  1    148224  ultralytics.nn.modules.C2f                   [384, 128, 1]                 
 13                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 14             [-1, 4]  1         0  ultralytics.nn.modules.Concat                [1]                           
 15                  -1  1     37248  ultralytics.nn.modules.C2f                   [192, 64, 1]                  
 16                  -1  1     36992  ultralytics.nn.modules.Conv                  [64, 64, 3, 2]                
 17            [-1, 12]  1         0  ultralytics.nn.modules.Concat                [1]                           
 18                  -1  1    123648  ultralytics.nn.modules.C2f                   [192, 128, 1]                 
 19                  -1  1    147712  ultralytics.nn.modules.Conv                  [128, 128, 3, 2]              
 20             [-1, 9]  1         0  ultralytics.nn.modules.Concat                [1]                           
 21                  -1  1    493056  ultralytics.nn.modules.C2f                   [384, 256, 1]                 
 22        [15, 18, 21]  1    751897  ultralytics.nn.modules.Detect                [3, [64, 128, 256]]           
Model summary: 225 layers, 3011433 parameters, 3011417 gradients, 8.2 GFLOPs

Transferred 319/355 items from pretrained weights
TensorBoard: Start with 'tensorboard --logdir runs\detect\train9', view at http://localhost:6006/
AMP: running Automatic Mixed Precision (AMP) checks with YOLOv8n...
AMP: checks passed 
optimizer: SGD(lr=0.01) with parameter groups 57 weight(decay=0.0), 64 weight(decay=0.0005), 63 bias
train: Scanning I:\Proposel\CV\CUSTOM_VEHICLE_DETECTION\using_yolo\YOLOv8\datasets\datasets\train\labels... 5000 images
train: New cache created: I:\Proposel\CV\CUSTOM_VEHICLE_DETECTION\using_yolo\YOLOv8\datasets\datasets\train\labels.cache
val: Scanning I:\Proposel\CV\CUSTOM_VEHICLE_DETECTION\using_yolo\YOLOv8\datasets\datasets\val\labels... 1000 images, 0 
val: New cache created: I:\Proposel\CV\CUSTOM_VEHICLE_DETECTION\using_yolo\YOLOv8\datasets\datasets\val\labels.cache
Plotting labels to runs\detect\train9\labels.jpg... 
Image sizes 320 train, 320 val
Using 8 dataloader workers
Logging results to runs\detect\train9
Starting training for 5 epochs...

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
        1/5     0.799G       1.57      1.754      1.082        133        320: 100%|██████████| 313/313 [01:29<00:00,  
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 32/32 [00:11
                   all       1000      10692      0.346       0.19      0.168     0.0997

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
        2/5     0.801G      1.502      1.155       1.03        148        320: 100%|██████████| 313/313 [01:26<00:00,  
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 32/32 [00:11
                   all       1000      10692      0.394      0.239      0.221      0.138

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
        3/5     0.803G      1.486      1.102      1.031        103        320: 100%|██████████| 313/313 [01:25<00:00,  
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 32/32 [00:11
                   all       1000      10692      0.384      0.263      0.242      0.149

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
        4/5     0.801G      1.452      1.051      1.015        181        320: 100%|██████████| 313/313 [01:25<00:00,  
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 32/32 [00:11
                   all       1000      10692       0.45      0.287      0.268       0.17

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
        5/5     0.799G       1.41      1.004          1        173        320: 100%|██████████| 313/313 [01:25<00:00,  
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 32/32 [00:15
                   all       1000      10692      0.495       0.26      0.264      0.164

5 epochs completed in 0.139 hours.
Optimizer stripped from runs\detect\train9\weights\last.pt, 6.2MB
Optimizer stripped from runs\detect\train9\weights\best.pt, 6.2MB

Validating runs\detect\train9\weights\best.pt...
Ultralytics YOLOv8.0.74  Python-3.7.0 torch-1.8.0 CUDA:0 (Quadro M2200, 4096MiB)
Model summary (fused): 168 layers, 3006233 parameters, 0 gradients, 8.1 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 32/32 [00:14
                   all       1000      10692      0.447      0.287      0.268      0.169
                   car       1000      10151       0.54      0.426      0.425      0.243
                   bus       1000        149       0.35      0.262        0.2      0.147
                 truck       1000        392      0.451      0.173       0.18      0.119
Speed: 0.1ms preprocess, 2.7ms inference, 0.0ms loss, 1.7ms postprocess per image
Results saved to runs\detect\train9

Option 2 : CLI

In [ ]:
# !yolo task=detect mode=train model=yolov8n.pt data= datasets/data.yaml epochs=5 imgsz=320 plots=True batch=16 workers 2
In [14]:
Image(filename='runs/detect/train9/confusion_matrix.png', width=600)
Out[14]:
No description has been provided for this image
In [15]:
Image(filename='runs/detect/train9/results.png', width=600)
Out[15]:
No description has been provided for this image
In [16]:
Image(filename='runs/detect/train9/val_batch0_pred.jpg', width=600)
Out[16]:
No description has been provided for this image

Validate Custom Model¶

By default, While we train our model it validates itself using the VAL dataset as there is a default parameter called 'val=True', so there is no need to revalidate it again

Option 1: (recommended)

In [18]:
# Load a model
model = YOLO('runs/detect/train9/weights/best.pt')  # load a custom model

# Validate the model
metrics = model.val()  
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list contains map50-95 of each category
Ultralytics YOLOv8.0.74  Python-3.7.0 torch-1.8.0 CUDA:0 (Quadro M2200, 4096MiB)
Model summary (fused): 168 layers, 3006233 parameters, 0 gradients, 8.1 GFLOPs
val: Scanning I:\Proposel\CV\CUSTOM_VEHICLE_DETECTION\using_yolo\YOLOv8\datasets\datasets\val\labels.cache... 1000 imag
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 63/63 [00:14
                   all       1000      10692       0.45      0.287      0.268      0.169
                   car       1000      10151      0.543      0.424      0.425      0.243
                   bus       1000        149      0.351      0.262        0.2      0.147
                 truck       1000        392      0.455      0.173       0.18      0.118
Speed: 0.1ms preprocess, 3.6ms inference, 0.0ms loss, 1.2ms postprocess per image
Results saved to runs\detect\val
Out[18]:
array([    0.24304,     0.14689,     0.11841])

Option 2 : CLI

In [20]:
# !yolo task=detect mode=val model=runs/detect/train2/weights/best.pt data= datasets/data.yaml

6. Load Custom Model and Make Detections with Images, and Videos¶

In [17]:
# Load Model
model = YOLO("runs/detect/train9/weights/best.pt")
In [18]:
img ='b3c939e3-61fb6427.jpg'
In [19]:
results = model.predict(source=img, conf=0.5 , show = True)
cv2.waitKey(50000)
cv2.destroyAllWindows()
image 1/1 I:\Proposel\CV\CUSTOM_VEHICLE_DETECTION\using_yolo\b3c939e3-61fb6427.jpg: 192x320 6 cars, 15.6ms
Speed: 0.0ms preprocess, 15.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)
In [20]:
#Get The BBOXES from results
bboxes =  results[0].boxes.xyxy.tolist() # you can get any formate  result.boxes.... 'xyxy,xywh,...'
print(bboxes)
[[291.7354736328125, 316.46673583984375, 459.7440185546875, 432.67449951171875], [805.6368408203125, 331.0543212890625, 1032.9127197265625, 464.55865478515625], [1125.233642578125, 365.083251953125, 1279.014892578125, 630.2391357421875], [545.8802490234375, 322.3106689453125, 656.2972412109375, 423.4154052734375], [675.65478515625, 332.39080810546875, 775.825439453125, 401.69146728515625], [468.337158203125, 339.1298828125, 534.6731567382812, 381.5062255859375]]
In [21]:
# With Matplotlib
import matplotlib.pyplot as plt
import matplotlib.patches as patches
%matplotlib inline 

image = plt.imread(img) 
# Create a figure and axis
fig, ax = plt.subplots()
ax.imshow(image)

# Loop over the bboxes and draw them on the image
for bbox in bboxes:
    x1, y1, x2, y2 = bbox
    rect = patches.Rectangle((x1, y1), x2 - x1, y2 - y1, linewidth=1, edgecolor='r', facecolor='none')
    ax.add_patch(rect)

# Show the image with bboxes
plt.show()
No description has been provided for this image
In [22]:
# With Open CV
# Load the image
image = cv2.imread(img)  
# Convert the image tensor to a numpy array
image = np.array(image)

# Loop over the bboxes and draw them on the image
for bbox in bboxes:
    x1, y1, x2, y2 = bbox
    x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)  # convert bbox coordinates to integers
    image = cv2.rectangle(image, (x1, y1), (x2, y2), (0, 0,255), 1)  # draw bbox on the image

# Display the image with bboxes
cv2.imshow('Image with Bboxes', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
In [23]:
cap = cv2.VideoCapture('video11.mp4')
screen_width = 640
screen_height = 480
while cap.isOpened():
    ret, frame = cap.read()
    frame = cv2.resize(frame, (screen_width, screen_height))
    
    # Make detections 
    results = model.predict(source=frame, conf=0.5,show = True) # You can disable show = False
    bboxes =  results[0].boxes.xyxy.tolist() # you can get any formate  result.boxes.... 'xyxy,xywh,...'
    # Loop over the bboxes and draw them on the image
    for bbox in bboxes:
        x1, y1, x2, y2 = bbox
        x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)  # convert bbox coordinates to integers
        frame = cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0,255), 1)  # draw bbox on the image
        cv2.imshow('YOLO', frame)
    
    if cv2.waitKey(10) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
0: 256x320 3 cars, 58.1ms
Speed: 1.0ms preprocess, 58.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 61.3ms
Speed: 1.0ms preprocess, 61.3ms inference, 4.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 63.0ms
Speed: 0.0ms preprocess, 63.0ms inference, 1.1ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 56.9ms
Speed: 0.0ms preprocess, 56.9ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 56.3ms
Speed: 0.0ms preprocess, 56.3ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.3ms
Speed: 0.0ms preprocess, 17.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.8ms
Speed: 0.0ms preprocess, 15.8ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 16.6ms
Speed: 0.0ms preprocess, 16.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 16.7ms
Speed: 0.0ms preprocess, 16.7ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 16.4ms
Speed: 0.0ms preprocess, 16.4ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 5 cars, 17.1ms
Speed: 0.0ms preprocess, 17.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.1ms
Speed: 0.0ms preprocess, 17.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 16.9ms
Speed: 0.0ms preprocess, 16.9ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.6ms
Speed: 0.0ms preprocess, 16.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.8ms
Speed: 0.0ms preprocess, 17.8ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.8ms
Speed: 0.0ms preprocess, 16.8ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.0ms
Speed: 0.0ms preprocess, 17.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 14.8ms
Speed: 1.0ms preprocess, 14.8ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.4ms
Speed: 0.0ms preprocess, 17.4ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.2ms
Speed: 0.0ms preprocess, 17.2ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 17.1ms
Speed: 0.0ms preprocess, 17.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.5ms
Speed: 0.0ms preprocess, 16.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.6ms
Speed: 0.0ms preprocess, 15.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.7ms
Speed: 0.0ms preprocess, 17.7ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.5ms
Speed: 0.0ms preprocess, 16.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.7ms
Speed: 0.0ms preprocess, 16.7ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.3ms
Speed: 0.0ms preprocess, 17.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.6ms
Speed: 0.0ms preprocess, 17.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.0ms
Speed: 0.0ms preprocess, 17.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 17.2ms
Speed: 0.0ms preprocess, 17.2ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.9ms
Speed: 0.0ms preprocess, 16.9ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.1ms
Speed: 0.0ms preprocess, 17.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 16.7ms
Speed: 0.0ms preprocess, 16.7ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 16.9ms
Speed: 0.0ms preprocess, 16.9ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.2ms
Speed: 0.0ms preprocess, 17.2ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 19.6ms
Speed: 0.0ms preprocess, 19.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 22.0ms
Speed: 0.0ms preprocess, 22.0ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.5ms
Speed: 0.0ms preprocess, 15.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 21.5ms
Speed: 0.0ms preprocess, 21.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.5ms
Speed: 0.0ms preprocess, 15.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.5ms
Speed: 0.0ms preprocess, 15.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.5ms
Speed: 0.0ms preprocess, 17.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.3ms
Speed: 0.0ms preprocess, 17.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.0ms
Speed: 0.0ms preprocess, 17.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.5ms
Speed: 0.0ms preprocess, 16.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.6ms
Speed: 0.0ms preprocess, 16.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.3ms
Speed: 0.0ms preprocess, 15.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.7ms
Speed: 0.0ms preprocess, 17.7ms inference, 11.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.0ms
Speed: 0.0ms preprocess, 17.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.4ms
Speed: 0.0ms preprocess, 17.4ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.3ms
Speed: 0.0ms preprocess, 16.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 18.3ms
Speed: 0.0ms preprocess, 18.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 20.5ms
Speed: 0.0ms preprocess, 20.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.7ms
Speed: 0.0ms preprocess, 17.7ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 16.8ms
Speed: 0.0ms preprocess, 16.8ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 21.5ms
Speed: 0.0ms preprocess, 21.5ms inference, 6.7ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 15.0ms
Speed: 0.0ms preprocess, 15.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 17.9ms
Speed: 0.0ms preprocess, 17.9ms inference, 12.9ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 16.5ms
Speed: 0.0ms preprocess, 16.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.1ms
Speed: 0.0ms preprocess, 17.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.3ms
Speed: 0.0ms preprocess, 16.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.1ms
Speed: 0.0ms preprocess, 17.1ms inference, 11.3ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.1ms
Speed: 0.0ms preprocess, 16.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 18.0ms
Speed: 0.0ms preprocess, 18.0ms inference, 10.4ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.0ms
Speed: 0.0ms preprocess, 16.0ms inference, 11.5ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.1ms
Speed: 0.0ms preprocess, 17.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 14.2ms
Speed: 0.0ms preprocess, 14.2ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 14.6ms
Speed: 0.0ms preprocess, 14.6ms inference, 14.9ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.1ms
Speed: 0.0ms preprocess, 17.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.8ms
Speed: 0.0ms preprocess, 16.8ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.3ms
Speed: 0.0ms preprocess, 17.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.3ms
Speed: 0.0ms preprocess, 17.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 19.4ms
Speed: 0.0ms preprocess, 19.4ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 17.0ms
Speed: 0.0ms preprocess, 17.0ms inference, 13.1ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 15.9ms
Speed: 0.0ms preprocess, 15.9ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 16.4ms
Speed: 0.0ms preprocess, 16.4ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 15.9ms
Speed: 0.0ms preprocess, 15.9ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.7ms
Speed: 0.0ms preprocess, 16.7ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.0ms
Speed: 0.0ms preprocess, 16.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.0ms
Speed: 0.0ms preprocess, 17.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.2ms
Speed: 0.0ms preprocess, 17.2ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.9ms
Speed: 0.0ms preprocess, 16.9ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.2ms
Speed: 0.0ms preprocess, 17.2ms inference, 13.1ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.8ms
Speed: 0.0ms preprocess, 16.8ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.3ms
Speed: 0.0ms preprocess, 17.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.0ms
Speed: 0.0ms preprocess, 16.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 16.4ms
Speed: 0.0ms preprocess, 16.4ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 17.2ms
Speed: 0.0ms preprocess, 17.2ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 17.4ms
Speed: 0.0ms preprocess, 17.4ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 5 cars, 16.1ms
Speed: 0.0ms preprocess, 16.1ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 5 cars, 16.4ms
Speed: 0.0ms preprocess, 16.4ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 8.0ms
Speed: 0.0ms preprocess, 8.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.9ms
Speed: 1.0ms preprocess, 17.9ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.7ms
Speed: 1.0ms preprocess, 17.7ms inference, 2.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.6ms
Speed: 0.0ms preprocess, 15.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.6ms
Speed: 0.0ms preprocess, 15.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.5ms
Speed: 0.0ms preprocess, 15.5ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 15.6ms
Speed: 0.0ms preprocess, 15.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 26.3ms
Speed: 0.0ms preprocess, 26.3ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 17.6ms
Speed: 0.0ms preprocess, 17.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 27.2ms
Speed: 0.0ms preprocess, 27.2ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.7ms
Speed: 0.0ms preprocess, 16.7ms inference, 2.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 40.3ms
Speed: 0.0ms preprocess, 40.3ms inference, 8.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 30.2ms
Speed: 0.0ms preprocess, 30.2ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 30.2ms
Speed: 0.0ms preprocess, 30.2ms inference, 5.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.1ms
Speed: 0.0ms preprocess, 16.1ms inference, 13.6ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 29.7ms
Speed: 0.0ms preprocess, 29.7ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 4 cars, 19.6ms
Speed: 11.2ms preprocess, 19.6ms inference, 4.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 27.7ms
Speed: 0.0ms preprocess, 27.7ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 22.3ms
Speed: 0.0ms preprocess, 22.3ms inference, 4.7ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 16.6ms
Speed: 0.0ms preprocess, 16.6ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 22.0ms
Speed: 0.0ms preprocess, 22.0ms inference, 3.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 3 cars, 14.3ms
Speed: 0.0ms preprocess, 14.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 15.4ms
Speed: 0.0ms preprocess, 15.4ms inference, 11.9ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 17.3ms
Speed: 0.0ms preprocess, 17.3ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 17.8ms
Speed: 0.0ms preprocess, 17.8ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 17.7ms
Speed: 0.0ms preprocess, 17.7ms inference, 12.1ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 17.7ms
Speed: 0.0ms preprocess, 17.7ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 18.1ms
Speed: 0.0ms preprocess, 18.1ms inference, 12.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 17.9ms
Speed: 0.0ms preprocess, 17.9ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 19.0ms
Speed: 0.0ms preprocess, 19.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 17.2ms
Speed: 0.0ms preprocess, 17.2ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 20.8ms
Speed: 0.0ms preprocess, 20.8ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 16.9ms
Speed: 0.0ms preprocess, 16.9ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 19.0ms
Speed: 0.0ms preprocess, 19.0ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 17.7ms
Speed: 0.0ms preprocess, 17.7ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 29.2ms
Speed: 0.0ms preprocess, 29.2ms inference, 2.0ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 18.9ms
Speed: 0.0ms preprocess, 18.9ms inference, 9.8ms postprocess per image at shape (1, 3, 320, 320)

0: 256x320 2 cars, 16.8ms
Speed: 0.0ms preprocess, 16.8ms inference, 0.0ms postprocess per image at shape (1, 3, 320, 320)

Results¶

confusion_matrix.png

F1_curve.png

P_curve.png

R_curve.png PR_curve.png

results.png

val_batch0_labels val_batch0_labels.jpg

val_batch0_pred val_batch0_pred.jpg

val_batch1_labels val_batch1_labels.jpg

val_batch1_pred val_batch1_pred.jpg

val_batch2_labels val_batch2_labels.jpg

val_batch2_pred val_batch2_pred.jpg

In [ ]: